home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS Toolkit
/
BBS Toolkit.iso
/
remote
/
fddev202.zip
/
C.ARJ
/
CTL.H
next >
Wrap
Text File
|
1991-10-02
|
23KB
|
690 lines
/*
** ctl.h (FrontDoor)
**
** Copyright 1991 Joaquim H. Homrighausen. All rights reserved.
**
** SETUP.FD definitions for FrontDoor 2.00+
**
** Last revision: 91-10-02
**
** -------------------------------------------------------------------------
** This information is not necessarily final and is subject to change at any
** given time without further notice
** -------------------------------------------------------------------------
*/
/* Mailer ----------------------------------------------------------------- */
/* --- Loglevels */
#define LOGFATAL 0x0001 /* ! Fatal errors */
#define LOGERROR 0x0002 /* ? Errors */
#define LOGBRIEF 0x0004 /* + Major changes in action */
#define LOGACCT 0x0008 /* $ Accounting information */
#define LOGXFER 0x0010 /* * Sent/Received files */
#define LOGTRIVIAL 0x0020 /* - Minor changes in action */
#define LOGXFERMSG 0x0040 /* % Transfer messages */
#define LOGMODEM 0x0080 /* = Modem activities/responses */
#define LOGTRX 0x0100 /* : Session transaction numbers */
#define LOGSESSION 0x0200 /* ~ Session stuff, SysOp, etc. */
#define LOGRMTAKAS 0x0400 /* ~ Remote system's AKAs */
#define LOGRMTINFO 0x0800 /* ~ Remote system's information */
#define LOGUNEXPECT 0x1000 /* # Unexpected password */
#define LOGDEBUG 0x8000 /* All loglevels enabled */
/* --- Miscellaneous MAILER flags */
#define NOUNLISTED 0x00000001L /* Don't allow unlisted systems */
#define CREATE_BATCH 0x00000002L /* Create batchfile when BBS caller */
#define TERMONLY 0x00000004L /* Running as Terminal-Only */
#define DTR_HANGUP 0x00000008L /* Use DTR to hangup */
#define DTR_DIAL 0x00000010L /* Toggle DTR prior to dialing */
#define DTR_BUSY 0x00000020L /* Use DTR to signal BUSY */
#define MANUAL_ANSWER 0x00000040L /* Use manual answer */
#define CONNECT_RESET 0x00000080L /* Reset modem to connect speed */
#define MODEM_FIXED 0x00000100L /* Use constant speed against modem */
#define NOMAIL_NOPWD 0x00000200L /* No mail from unsecured systems */
#define DELAYFIRST 0x00000400L /* Delay before first call */
#define CLOCK 0x00000800L /* Display clock */
#define KILLNULL 0x00001000L /* Remove messages with no text */
#define MAILONLY 0x00002000L /* Don't allow human callers */
#define LIMITED_ANSWER 0x00004000L /* Limited hours to answer */
#define EXIT_NETMAIL 0x00008000L /* Exit when netmail received */
#define ZONE_ADAPTION 0x00010000L /* Adopt called/calling zone */
#define PRINTNEWMSGS 0x00020000L /* Print received messages */
#define NOUNKNOWNPOINTS 0x00040000L /* Don't accept unlisted points */
#define FORCEDCARRIER 0x00080000L /* Carrier is forced. Ring required */
#define NULLMODEM 0x00100000L /* Initiate session when CD high */
#define MAILER43LINES 0x00200000L /* Use 43/50 line mode in mailer */
#define SWAPTOEMSDISK 0x00400000L /* Swap file to LIM/EMS/DISK w/shell */
#define MAILEREMSOK 0x00800000L /* If EMS can be used for swapping */
#define PRESENTAKAS 0x01000000L /* Present AKAs during EMSI sessions */
#define NOBLINKMAIL 0x02000000L /* Don't flash the waiting mail sign */
#define EXITONANYFILE 0x04000000L /* Exit after ANY data has been rcvd */
#define MAILERAUTOLINES 0x08000000L /* Use whatever screen mode is there */
#define HONOR_RRQ 0x10000000L /* Honor RRQ */
#define NO_TIMESTAMP 0x20000000L /* Don't show timestamp in window-1 */
#define MAILERCUSTOMCRT 0x40000000L /* User-defined screen size */
/* --- Audio flags */
#define CLOCKNOISE 0x0001 /* Tic-tac-tic-tac-tic-tac */
#define INMAILNOISE 0x0002 /* Unpacked any mail */
#define INCRASHNOISE 0x0004 /* Unpacked crash or immediate mail */
#define INCONNECTNOISE 0x0008 /* Incoming MAIL call (connect) */
#define INCALLERNOISE 0x0010 /* Incoming human caller passed >BBS*/
#define MAILWAITING 0x0020 /* Mail is waiting */
#define OUTMAILNOISE 0x0040 /* Sent mail (after session) */
#define OUTCONNECTNOISE 0x0080 /* Outgoing MAIL call (connect) */
#define ERRORNOISE 0x0100 /* S.O.S. */
/* --- Request types */
#define REQALL 0x01 /* Anybody can request */
#define REQNONE 0x02 /* No one can request */
#define REQLISTED 0x04 /* Only listed systems */
#define REQLIMITED 0x08 /* Limited hours */
typedef struct
{
/* --- The logfile */
char log[71];
word loglevel; /* See --- Loglevels */
/* --- Telephone number manipulation */
char prefix[31]; /* Always added */
char hidden[10][31]; /* Strip these if they are in # */
char postfix[31]; /* Always appended */
/* --- Miscellaneous flags */
long flags; /* See --- Miscellaneous flags */
long flags_reserved; /* Reserved flags */
word audio; /* See --- Audio flags */
byte synchtimer; /* Number of seconds for sync */
/* --- Errorlevels */
byte crashexit; /* Mail exit */
byte bbs300;
byte bbs1200;
byte bbs1275;
byte bbs2400;
byte bbs4800;
byte bbs9600;
byte bbs19200;
byte bbs38400;
/* --- Modem */
word modembaud; /* 30=300, 24=2400, etc. */
byte modemport; /* 1-255 (COM1=1, COM2=2, etc.) */
byte modemdelay; /* 1/10 seconds delay / line sent */
/* --- Messages */
char b300msg[16];
char b1200msg[16];
char b1275msg[16];
char b2400msg[16];
char b4800msg[16];
char b9600msg[16];
char b19200msg[16];
char b38400msg[16];
char errormsg[16];
char busymsg[16];
char carriermsg[16];
char okmsg[16];
char ringmsg[16];
char nodialmsg[16];
char noanswmsg[16];
char voicemsg[16];
/* --- Commands */
char escapestr[11];
char offhookstr[11];
char reconnectstr[11];
char init1[50];
char init2[50];
char init3[50];
char resetstr[50];
char downstr[50];
char hangupstr[11];
char dialstr[11];
/* --- Manual answer stuff */
char oldmodemanswer[11]; /* Not used anymore */
byte answerdelay;
/* --- Limited answer start and end times */
byte begin_hour;
byte begin_minute;
byte end_hour;
byte end_minute;
/* --- Calling control */
byte retrybusy;
byte retryresend;
byte retrydelay;
/* --- File request control */
char reqlist[71]; /* List to scan for reqable dirs */
char reqalias[71]; /* Magic filenames */
char reqmessage[71]; /* Appended to FAILED REQUEST message */
byte reqtype; /* Bit field */
byte reqmaxfiles; /* Max number of files to send on 1 req */
word reqmaxtime; /* Maximum number of minutes for req */
word reqmaxsize; /* Maximum size (in KB) for req */
word reqminbaud; /* Minimum baudrate for req */
byte reqstarthr; /* Start time for file requests, can be */
byte reqstartmin; /* - combined with the reqdays field */
byte reqendhr;
byte reqendmin;
byte reqdays; /* 7 6 5 4 3 2 1 0x80==All days
_ _ _ _ _ _ _
: : : : : : :
: : : : : : +--- Saturday
: : : : : +----- Friday
: : : : +------- Thursday
: : : +--------- Wednesday
: : +----------- Tuesday
: +------------- Monday
+--------------- Sunday */
/* --- File to send when human callers are let thru */
char bbsname[11];
char beforebbsbanner[71];
/* Function keys from mailer menu */
/* --- F1-F12, Shift F1-F12 */
struct
{
char cmd[61];
char title[26];
byte behavior; /* 1-Pause, 2-Process msg base */
}
key[24];
/* --- Mailer colors
header
highlight
clock
data_entry
error
normal_text
frame
window_text
window_frame
window_select
window_highlight */
byte color[11];
/* --- Number of days to keep entries in history files */
byte keep_history;
/* --- FDServer password, if none given, server is INactive */
char slavepwd[21];
/* --- File displayed to users when system is in event for no callers */
char ineventfile[71];
/* --- File displayed when human callers are seen on mail-only system */
char mailonlyfile[71];
/* --- External programs to run on certain "wake-up" strings */
struct
{
char wakeupstr[40];
byte errorlevel;
}
externmail[10];
/* RESERVED FIELD */
/* --- Limited audio start and end times. If the below four bytes
are all zero (0), audio is enabled all the time */
byte audio_begin_hour;
byte audio_begin_minute;
byte audio_end_hour;
byte audio_end_minute;
/* --- Minimum cost to process undialable */
word min_undial_cost;
/* --- Carrier detect mask (commercial version), default=128 */
byte CDMASK;
/* --- FDCD buffer sizes (commercial version) */
word FOSSIL_OUTBS,
FOSSIL_INBS;
/* --- List to scan for SECURE sessions during file requests */
char reqseclist[71];
/* --- Extended baud rate exits */
byte bbs7200;
byte bbs12000;
byte bbs14400;
/* --- Custom screen size parameters to INT 10H (commercial version) */
word SETcustomcrt_AX,
SETcustomcrt_BX,
SETcustomcrt_CX,
SETcustomcrt_DX;
word RESETcustomcrt_AX,
RESETcustomcrt_BX,
RESETcustomcrt_CX,
RESETcustomcrt_DX;
/* --- Alias List to scan for SECURE sessions */
char reqsecalias[71];
/* --- Command string to force modem to answer */
char modemanswer[41];
char RESERVERAT[811];
}
_mailer;
/* Editor ----------------------------------------------------------------- */
#define EDITOR43LINES 0x00000001L /* Use 43/50-line mode */
#define SHOWHARDCRS 0x00000002L /* Display paragraph (hard CR) char */
#define EDITORSWAP 0x00000004L /* Swap file to LIM/EMS/DISK w/shell */
#define EDITOREMSOK 0x00000008L /* Whether or not EMS should be used */
#define EDITORAUTOLINES 0x00000010L /* Use whatever screen mode is there */
#define HONOR_CFM 0x00000020L /* Honor CFM */
#define EDITORCUSTOMCRT 0x00000040L /* User-defined screen size */
#define RKILL_NEVER_E 0x00000080L /* Never ask "Delete Original?"-E */
#define RKILL_NEVER_L 0x00000100L /* Never ask "Delete Original?"-L */
#define RKILL_NEVER_N 0x00000200L /* Never ask "Delete Original?"-N */
#define USEZONEGATE_YES 0x00000400L /* Always use zone gate if OK */
#define USEZONEGATE_NO 0x00000800L /* Never use zone gate, even if OK */
/* --- Netmail folder behavior */
#define RESTRICTED 0x00000001L
#define EXPORTOK 0x00000004L
#define USEXLATTABLES 0x00000008L
#define EDREADONLY 0x00000020L
typedef struct
{
/* --- Macro keys */
/* F1-F12, Shift F1-F12 */
char macrokey[24][61];
/* --- Margin, default==60 */
byte margin;
/* --- Default message status */
word msgbits;
/* --- Miscellaneous settings */
long flags;
/* --- Origin lines */
char origin[20][61];
/* --- Editor colors
top_line
status_line
error
text
text_quotes
text_reverse
text_hardCRs
header
header_data
header_data_highlight
data_entry
window_frame
window_text
window_select
window_highlight */
byte color[15];
/* --- Netmail folder flags */
long netfolderflags;
/* --- Translation tables IN/OUT */
byte translate_in[256];
byte translate_out[256];
/* --- Where Hudson-style message base files are */
char qbase[71];
/* --- Custom screen size parameters to INT 10H (commercial version) */
word SETcustomcrt_AX,
SETcustomcrt_BX,
SETcustomcrt_CX,
SETcustomcrt_DX;
word RESETcustomcrt_AX,
RESETcustomcrt_BX,
RESETcustomcrt_CX,
RESETcustomcrt_DX;
/* --- RESERVED */
char RESERVERAT[1008];
}
_editor;
/* Shared data ------------------------------------------------------------- */
#define FASTKEY 0x00000001L
#define FLICKER 0x00000002L
#define BLACKOUT 0x00000004L
#define HAVEEXTKBD 0x00000008L /* Use extended INT 16H calls */
#define FORCE24HOUR 0x00000010L /* Force 24-hour time format */
#define SUPERUSER 0x00000001L /* User flags */
#define ADMINUSER 0x00000002L
#define USER 0x00000004L
#define BYPASSRO 0x00010000L
#define BYPASSEXP 0x00020000L
#define PROTECT_MEXIT 0x00000001L /* Protect Alt-Q Mailer */
#define PROTECT_MSHELL 0x00000002L /* Protect Alt-Z Mailer */
#define PROTECT_MKEYS 0x00000004L /* Protect function keys Mailer */
#define PROTECT_MFREQ 0x00000008L /* Protect file requests Mailer */
#define PROTECT_MXMIT 0x00000010L /* Protect transmit Mailer */
#define PROTECT_MSEND 0x00000020L /* Protect send mail Mailer */
#define PROTECT_MPOLL 0x00000040L /* Protect poll Mailer */
#define PROTECT_MNCOMP 0x00000080L /* Protect FDNC Mailer */
#define PROTECT_MQUEUE 0x00000100L /* Protect mail queue Mailer */
#define PROTECT_MPRN 0x00000200L /* Protect printer toggle Mailer */
/*
** Domain structure
*/
typedef struct
{
word zone, /* Zone for domain */
reserved;
char name[28]; /* Name of domain */
}
_DOMAIN;
/*
** AKA matching structure
*/
typedef struct
{
word zone, /* Zone to match */
net, /* Net to match */
akanum; /* AKA to use */
}
_ZMATCH;
/*
** Shared information structure
*/
typedef struct
{
char systempath[71];
char mailpath[71];
char swap_path[71];
char rescanpath[71]; /* Commercial version */
char RESERVED_path_2[71];
char infilepath[71];
char packetpath[71];
char nodelistpath[71];
word countrycode;
struct
{
word zone;
word net;
word node;
word point;
}
aka[11];
/* --- Timeout value for screen blanker in SECONDS (0-255) */
long flags;
byte blackout_time;
/* --- User record */
struct
{
char name[37];
long pwdcrc; /* CRC-32 of user password, -1L No pwd */
dword flags;
}
user[10];
/* --- Protection of exits (commercial version) */
dword exitpwdcrc; /* Password for DOS shell, exits, etc. */
dword exitflags; /* Which flags should be protected */
/* --- Zone match set-up */
_ZMATCH zmatch[20];
/* --- "Domain" set-up */
_DOMAIN domain[20];
/* --- System information */
struct
{
char name[50], /* Name of site */
location[40], /* Location of site */
phone[26]; /* Phone number or '-Unpublished-' */
dword baud; /* Baud rate (300-115200) */
char flags[50]; /* Capability flags of site */
}
siteinfo;
/* --- Reserved */
char RESERVED[86];
}
_shared;
/* Terminal --------------------------------------------------------------- */
#define CONNECT_NOISE 0x00000001L
#define TRANSFER_NOISE 0x00000002L
#define USE_TRANSLATE 0x00000004L
#define USE_43LINES 0x00000008L
#define AUTOZMODEM 0x00000010L
#define NOWRAPAROUND 0x00000020L
#define LOCALECHO 0x00000040L
#define NOAVATAR 0x00000080L
#define USE_AUTOLINES 0x00000100L
#define NOCLRONFF 0x00000200L /*Don't clear screen on form feeds*/
#define IEMSIACTIVE 0x00000400L /*Interactive EMSI Support*/
#define TERMCUSTOMCRT 0x00000800L /*User-defined screen size*/
#define TERMLOG 0x00001000L /*Logging in Terminal*/
typedef struct
{
/* --- Init string */
char initstring[41];
/* --- Max memory to use for buffer (in K) */
word scrollsize;
/* --- 0=TTY, 1=ANSI, 2=VT52, 3=VT100 */
byte emulation;
/* --- Index in protocol list */
byte protocol;
/* --- Shift F1-F12 macro settings */
char shiftkey[12][31];
/* --- Ctrl F1-F12 macro settings */
char ctrlkey[12][31];
/* --- Default download path */
char downloadpath[60];
/* --- Default upload path */
char uploadpath[60];
/* --- Translation table - modem->screen */
byte translate_in[256];
/* --- Translation table - screen->modem */
byte translate_out[256];
/* --- Seconds to wait before next dial.. */
byte retrywait;
/* --- Behavior, sounds, flashes.. etc. */
dword flags;
/* --- CRC-32 of password to enter PhoneDir */
dword directorypwd;
/* --- Invoked with Alt-I */
char editor[60];
/* --- Default profile. See TERMINAL.H */
char profile[94];
/* --- Custom screen size params to INT 10H (commercial version) */
word SETcustomcrt_AX,
SETcustomcrt_BX,
SETcustomcrt_CX,
SETcustomcrt_DX;
word RESETcustomcrt_AX,
RESETcustomcrt_BX,
RESETcustomcrt_CX,
RESETcustomcrt_DX;
/* --- Reserved */
char RESERVERAT[854];
}
_terminal;
/* Printer (commercial version) ------------------------------------------- */
#define PAGE_FORMAT 0x00000001L
#define PAGE_FFEED 0x00000002L
#define EJECT 0x00000004L
#define MANUAL_PAPER 0x00000008L
#define HIDE_KLUDGE 0x00000010L
#define CONTINOUS 0x00000020L
typedef struct
{
char port; /* 0 LPT1, 1 LPT2, 2 LPT3, 3 COM1, 4 COM2 */
char baud; /* 0 9600, 1 4800, 2 2400, 3 1200 */
byte stopbits; /* 0x00 - 1, 0x01 - 2 */
byte wordlength; /* 0x00 - 7, 0x01 - 8 */
byte parity; /* 0x00 - Even, 0x01 - Odd, 0x02 - None */
byte pagelen;
long behavior;
char init[71];
char reset[71];
char bold_on[31];
char bold_off[31];
char under_on[31];
char under_off[31];
char italic_on[31];
char italic_off[31];
byte pagewidth; /* Width in columns of a page */
byte leftmargin; /* Left margin, ie. start printing at column */
byte footer; /* Footer margin, ie. leave nn lines */
byte header; /* Header margin, ie. skip nn lines */
byte translate_out[256]; /* Translation table - disk->printer */
char pr2RESERVED[100];
}
_printer;
/*****************************************************************************
** **
** Don't use ANY of the data in the file if the CRC values are NOT correct. **
** **
** Check the fingerprint[] field before assuming 1.99b and higher. Your **
** software should also check the sysrev field to make sure it's compatible **
** with the data listed in SETUP.FD **
** **
*****************************************************************************/
#define FD_THISREV 0x0100
struct _ctl
{
char fingerprint[5]; /* Must contain "JoHo<NUL>" */
word sysrev; /* Must contain THISREV above */
dword ctlcrc; /* CRC-32 of struct excluding the 1st 11 bytes */
_mailer m;
_editor e;
_shared s;
_terminal t;
_printer p;
dword ctlcrc2; /* CRC-32 of all the above */
};
/* end of file "ctl.h" */